﻿/*
 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
        CKEDITOR.dialog.add("scaytcheck", function(j) {
            function w() {
                return"undefined" != typeof document.forms["optionsbar_" + a] ? document.forms["optionsbar_" + a].options : []
            }
            function x(b, a) {
                if (b) {
                    var e = b.length;
                    if (void 0 == e)
                        b.checked = b.value == a.toString();
                    else
                        for (var d = 0; d < e; d++)
                            b[d].checked = !1, b[d].value == a.toString() && (b[d].checked = !0)
                }
            }
            function n(b) {
                f.getById("dic_message_" + a).setHtml('<span style="color:red;">' + b + "</span>")
            }
            function o(b) {
                f.getById("dic_message_" + a).setHtml('<span style="color:blue;">' + b + "</span>")
            }
            function p(b) {
                for (var b = ("" + b).split(","), a = 0, e = b.length; a < e; a += 1)
                    f.getById(b[a]).$.style.display = "inline"
            }
            function q(b) {
                for (var b = ("" + b).split(","), a = 0, e = b.length; a < e; a += 1)
                    f.getById(b[a]).$.style.display = "none"
            }
            function r(b) {
                f.getById("dic_name_" + a).$.value = b
            }
            var s = !0, h, f = CKEDITOR.document, a = j.name, l = CKEDITOR.plugins.scayt.getUiTabs(j), g, t = [], u = 0, m = ["dic_create_" + a + ",dic_restore_" + a, "dic_rename_" + a + ",dic_delete_" + a], v = ["mixedCase", "mixedWithDigits", "allCaps", "ignoreDomainNames"];
            g = j.lang.scayt;
            var z =
                    [{id: "options", label: g.optionsTab, elements: [{type: "html", id: "options", html: '<form name="optionsbar_' + a + '"><div class="inner_options">\t<div class="messagebox"></div>\t<div style="display:none;">\t\t<input type="checkbox" name="options"  id="allCaps_' + a + '" />\t\t<label for="allCaps" id="label_allCaps_' + a + '"></label>\t</div>\t<div style="display:none;">\t\t<input name="options" type="checkbox"  id="ignoreDomainNames_' + a + '" />\t\t<label for="ignoreDomainNames" id="label_ignoreDomainNames_' + a + '"></label>\t</div>\t<div style="display:none;">\t<input name="options" type="checkbox"  id="mixedCase_' +
                                            a + '" />\t\t<label for="mixedCase" id="label_mixedCase_' + a + '"></label>\t</div>\t<div style="display:none;">\t\t<input name="options" type="checkbox"  id="mixedWithDigits_' + a + '" />\t\t<label for="mixedWithDigits" id="label_mixedWithDigits_' + a + '"></label>\t</div></div></form>'}]}, {id: "langs", label: g.languagesTab, elements: [{type: "html", id: "langs", html: '<form name="languagesbar_' + a + '"><div class="inner_langs">\t<div class="messagebox"></div>\t   <div style="float:left;width:45%;margin-left:5px;" id="scayt_lcol_' +
                                            a + '" ></div>   <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol_' + a + '"></div></div></form>'}]}, {id: "dictionaries", label: g.dictionariesTab, elements: [{type: "html", style: "", id: "dictionaries", html: '<form name="dictionarybar_' + a + '"><div class="inner_dictionary" style="text-align:left; white-space:normal; width:320px; overflow: hidden;">\t<div style="margin:5px auto; width:80%;white-space:normal; overflow:hidden;" id="dic_message_' + a + '"> </div>\t<div style="margin:5px auto; width:80%;white-space:normal;">        <span class="cke_dialog_ui_labeled_label" >Dictionary name</span><br>\t\t<span class="cke_dialog_ui_labeled_content" >\t\t\t<div class="cke_dialog_ui_input_text">\t\t\t\t<input id="dic_name_' +
                                            a + '" type="text" class="cke_dialog_ui_input_text"/>\t\t</div></span></div>\t\t<div style="margin:5px auto; width:80%;white-space:normal;">\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create_' + a + '">\t\t\t\t</a>\t\t\t<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete_' + a + '">\t\t\t\t</a>\t\t\t<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename_' + a + '">\t\t\t\t</a>\t\t\t<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore_' +
                                            a + '">\t\t\t\t</a>\t\t</div>\t<div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info_' + a + '"></div></div></form>'}]}, {id: "about", label: g.aboutTab, elements: [{type: "html", id: "about", style: "margin: 5px 5px;", html: '<div id="scayt_about_' + a + '"></div>'}]}], B = {title: g.title, minWidth: 360, minHeight: 220, onShow: function() {
                    var b = this;
                    b.data = j.fire("scaytDialog", {});
                    b.options = b.data.scayt_control.option();
                    b.chosed_lang = b.sLang = b.data.scayt_control.sLang;
                    if (!b.data || !b.data.scayt || !b.data.scayt_control)
                        alert("Error loading application service"),
                                b.hide();
                    else {
                        var a = 0;
                        s ? b.data.scayt.getCaption(j.langCode || "en", function(e) {
                            0 < a++ || (h = e, A.apply(b), y.apply(b), s = !1)
                        }) : y.apply(b);
                        b.selectPage(b.data.tab)
                    }
                }, onOk: function() {
                    var a = this.data.scayt_control;
                    a.option(this.options);
                    a.setLang(this.chosed_lang);
                    a.refresh()
                }, onCancel: function() {
                    var b = w(), f;
                    for (f in b)
                        b[f].checked = !1;
                    b = "undefined" != typeof document.forms["languagesbar_" + a] ? document.forms["languagesbar_" + a].scayt_lang : [];
                    x(b, "")
                }, contents: t};
            CKEDITOR.plugins.scayt.getScayt(j);
            for (g = 0; g < l.length; g++)
                1 ==
                        l[g] && (t[t.length] = z[g]);
            1 == l[2] && (u = 1);
            var A = function() {
                function b(b) {
                    var c = f.getById("dic_name_" + a).getValue();
                    if (!c)
                        return n(" Dictionary name should not be empty. "), !1;
                    try {
                        var d = b.data.getTarget().getParent(), e = /(dic_\w+)_[\w\d]+/.exec(d.getId())[1];
                        j[e].apply(null, [d, c, m])
                    } catch (C) {
                        n(" Dictionary error. ")
                    }
                    return!0
                }
                var k = this, e = k.data.scayt.getLangList(), d = ["dic_create", "dic_delete", "dic_rename", "dic_restore"], g = [], i = [], c;
                if (u) {
                    for (c = 0; c < d.length; c++)
                        g[c] = d[c] + "_" + a, f.getById(g[c]).setHtml('<span class="cke_dialog_ui_button">' +
                                h["button_" + d[c]] + "</span>");
                    f.getById("dic_info_" + a).setHtml(h.dic_info)
                }
                if (1 == l[0])
                    for (c in v)
                        d = "label_" + v[c], g = f.getById(d + "_" + a), "undefined" != typeof g && ("undefined" != typeof h[d] && "undefined" != typeof k.options[v[c]]) && (g.setHtml(h[d]), g.getParent().$.style.display = "block");
                d = '<p><img src="' + window.scayt.getAboutInfo().logoURL + '" /></p><p>' + h.version + window.scayt.getAboutInfo().version.toString() + "</p><p>" + h.about_throwt_copy + "</p>";
                f.getById("scayt_about_" + a).setHtml(d);
                d = function(a, b) {
                    var c = f.createElement("label");
                    c.setAttribute("for", "cke_option" + a);
                    c.setHtml(b[a]);
                    k.sLang == a && (k.chosed_lang = a);
                    var d = f.createElement("div"), e = CKEDITOR.dom.element.createFromHtml('<input id="cke_option' + a + '" type="radio" ' + (k.sLang == a ? 'checked="checked"' : "") + ' value="' + a + '" name="scayt_lang" />');
                    e.on("click", function() {
                        this.$.checked = true;
                        k.chosed_lang = a
                    });
                    d.append(e);
                    d.append(c);
                    return{lang: b[a], code: a, radio: d}
                };
                if (1 == l[1]) {
                    for (c in e.rtl)
                        i[i.length] = d(c, e.ltr);
                    for (c in e.ltr)
                        i[i.length] = d(c, e.ltr);
                    i.sort(function(a, b) {
                        return b.lang >
                                a.lang ? -1 : 1
                    });
                    e = f.getById("scayt_lcol_" + a);
                    d = f.getById("scayt_rcol_" + a);
                    for (c = 0; c < i.length; c++)
                        (c < i.length / 2 ? e : d).append(i[c].radio)
                }
                var j = {dic_create: function(a, b, c) {
                        var d = c[0] + "," + c[1], e = h.err_dic_create, f = h.succ_dic_create;
                        window.scayt.createUserDictionary(b, function(a) {
                            q(d);
                            p(c[1]);
                            f = f.replace("%s", a.dname);
                            o(f)
                        }, function(a) {
                            e = e.replace("%s", a.dname);
                            n(e + "( " + (a.message || "") + ")")
                        })
                    }, dic_rename: function(a, b) {
                        var c = h.err_dic_rename || "", d = h.succ_dic_rename || "";
                        window.scayt.renameUserDictionary(b,
                                function(a) {
                                    d = d.replace("%s", a.dname);
                                    r(b);
                                    o(d)
                                }, function(a) {
                            c = c.replace("%s", a.dname);
                            r(b);
                            n(c + "( " + (a.message || "") + " )")
                        })
                    }, dic_delete: function(a, b, c) {
                        var d = c[0] + "," + c[1], e = h.err_dic_delete, f = h.succ_dic_delete;
                        window.scayt.deleteUserDictionary(function(a) {
                            f = f.replace("%s", a.dname);
                            q(d);
                            p(c[0]);
                            r("");
                            o(f)
                        }, function(a) {
                            e = e.replace("%s", a.dname);
                            n(e)
                        })
                    }};
                j.dic_restore = k.dic_restore || function(a, b, c) {
                    var d = c[0] + "," + c[1], e = h.err_dic_restore, f = h.succ_dic_restore;
                    window.scayt.restoreUserDictionary(b, function(a) {
                        f =
                                f.replace("%s", a.dname);
                        q(d);
                        p(c[1]);
                        o(f)
                    }, function(a) {
                        e = e.replace("%s", a.dname);
                        n(e)
                    })
                };
                i = (m[0] + "," + m[1]).split(",");
                c = 0;
                for (e = i.length; c < e; c += 1)
                    if (d = f.getById(i[c]))
                        d.on("click", b, this)
            }, y = function() {
                var b = this;
                if (1 == l[0])
                    for (var g = w(), e = 0, d = g.length; e < d; e++) {
                        var h = g[e].id, i = f.getById(h);
                        if (i && (g[e].checked = !1, 1 == b.options[h.split("_")[0]] && (g[e].checked = !0), s))
                            i.on("click", function() {
                                b.options[this.getId().split("_")[0]] = this.$.checked ? 1 : 0
                            })
                    }
                1 == l[1] && (g = f.getById("cke_option" + b.sLang), x(g.$, b.sLang));
                u && (window.scayt.getNameUserDictionary(function(b) {
                    b = b.dname;
                    q(m[0] + "," + m[1]);
                    if (b) {
                        f.getById("dic_name_" + a).setValue(b);
                        p(m[1])
                    } else
                        p(m[0])
                }, function() {
                    f.getById("dic_name_" + a).setValue("")
                }), o(""))
            };
            return B
        });